DigiOffice Gateway Web Services

<back to all web services

ProcessProjectRequestMessage

Requires Authentication
import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';

class Environment implements IConvertible
{
    String? Title;
    String? Code;

    Environment({this.Title,this.Code});
    Environment.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Title = json['Title'];
        Code = json['Code'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Title': Title,
        'Code': Code
    };

    getTypeName() => "Environment";
    TypeContext? context = _ctx;
}

class Party implements IConvertible
{
    String? Title;
    String? Code;
    String? Version;
    Environment? Environment;

    Party({this.Title,this.Code,this.Version,this.Environment});
    Party.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Title = json['Title'];
        Code = json['Code'];
        Version = json['Version'];
        Environment = JsonConverters.fromJson(json['Environment'],'Environment',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Title': Title,
        'Code': Code,
        'Version': Version,
        'Environment': JsonConverters.toJson(Environment,'Environment',context!)
    };

    getTypeName() => "Party";
    TypeContext? context = _ctx;
}

class Header implements IConvertible
{
    String? MessageID;
    DateTime? Timestamp;
    Party? Sender;
    Party? Recipient;
    dynamic? RequestMessageID;

    Header({this.MessageID,this.Timestamp,this.Sender,this.Recipient,this.RequestMessageID});
    Header.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        MessageID = json['MessageID'];
        Timestamp = JsonConverters.fromJson(json['Timestamp'],'DateTime',context!);
        Sender = JsonConverters.fromJson(json['Sender'],'Party',context!);
        Recipient = JsonConverters.fromJson(json['Recipient'],'Party',context!);
        RequestMessageID = JsonConverters.fromJson(json['RequestMessageID'],'dynamic',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'MessageID': MessageID,
        'Timestamp': JsonConverters.toJson(Timestamp,'DateTime',context!),
        'Sender': JsonConverters.toJson(Sender,'Party',context!),
        'Recipient': JsonConverters.toJson(Recipient,'Party',context!),
        'RequestMessageID': JsonConverters.toJson(RequestMessageID,'dynamic',context!)
    };

    getTypeName() => "Header";
    TypeContext? context = _ctx;
}

class Reference implements IConvertible
{
    String? GlobalID;
    String? Title;

    Reference({this.GlobalID,this.Title});
    Reference.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        GlobalID = json['GlobalID'];
        Title = json['Title'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'GlobalID': GlobalID,
        'Title': Title
    };

    getTypeName() => "Reference";
    TypeContext? context = _ctx;
}

class Address implements IConvertible
{
    String? AddressLine1;
    String? AddressLine2;
    String? HouseNumber;
    String? HouseNumberSuffix;
    String? PostalCode;
    String? City;
    Reference? Country;

    Address({this.AddressLine1,this.AddressLine2,this.HouseNumber,this.HouseNumberSuffix,this.PostalCode,this.City,this.Country});
    Address.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        AddressLine1 = json['AddressLine1'];
        AddressLine2 = json['AddressLine2'];
        HouseNumber = json['HouseNumber'];
        HouseNumberSuffix = json['HouseNumberSuffix'];
        PostalCode = json['PostalCode'];
        City = json['City'];
        Country = JsonConverters.fromJson(json['Country'],'Reference',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'AddressLine1': AddressLine1,
        'AddressLine2': AddressLine2,
        'HouseNumber': HouseNumber,
        'HouseNumberSuffix': HouseNumberSuffix,
        'PostalCode': PostalCode,
        'City': City,
        'Country': JsonConverters.toJson(Country,'Reference',context!)
    };

    getTypeName() => "Address";
    TypeContext? context = _ctx;
}

class MailingAddress implements IConvertible
{
    String? POBox;
    String? PostalCode;
    String? City;
    Reference? Country;

    MailingAddress({this.POBox,this.PostalCode,this.City,this.Country});
    MailingAddress.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        POBox = json['POBox'];
        PostalCode = json['PostalCode'];
        City = json['City'];
        Country = JsonConverters.fromJson(json['Country'],'Reference',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'POBox': POBox,
        'PostalCode': PostalCode,
        'City': City,
        'Country': JsonConverters.toJson(Country,'Reference',context!)
    };

    getTypeName() => "MailingAddress";
    TypeContext? context = _ctx;
}

class Project implements IConvertible
{
    String? GlobalID;
    DateTime? CreationDate;
    String? CreatedBy;
    DateTime? ModifiedDate;
    String? ModifiedBy;
    String? Code;
    String? Name;
    String? Description1;
    String? Description2;
    Address? Address;
    MailingAddress? MailingAddress;
    Reference? ProjectCategoryReference;
    Reference? ProjectTypeReference;
    Reference? ProjectStatusReference;
    DateTime? StartDate;
    DateTime? EndDate;
    DateTime? CompletionDate;
    bool? Inactive;
    String? Website;
    bool? IsTemplateProject;
    List<CustomField>? CustomFields;

    Project({this.GlobalID,this.CreationDate,this.CreatedBy,this.ModifiedDate,this.ModifiedBy,this.Code,this.Name,this.Description1,this.Description2,this.Address,this.MailingAddress,this.ProjectCategoryReference,this.ProjectTypeReference,this.ProjectStatusReference,this.StartDate,this.EndDate,this.CompletionDate,this.Inactive,this.Website,this.IsTemplateProject,this.CustomFields});
    Project.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        GlobalID = json['GlobalID'];
        CreationDate = JsonConverters.fromJson(json['CreationDate'],'DateTime',context!);
        CreatedBy = json['CreatedBy'];
        ModifiedDate = JsonConverters.fromJson(json['ModifiedDate'],'DateTime',context!);
        ModifiedBy = json['ModifiedBy'];
        Code = json['Code'];
        Name = json['Name'];
        Description1 = json['Description1'];
        Description2 = json['Description2'];
        Address = JsonConverters.fromJson(json['Address'],'Address',context!);
        MailingAddress = JsonConverters.fromJson(json['MailingAddress'],'MailingAddress',context!);
        ProjectCategoryReference = JsonConverters.fromJson(json['ProjectCategoryReference'],'Reference',context!);
        ProjectTypeReference = JsonConverters.fromJson(json['ProjectTypeReference'],'Reference',context!);
        ProjectStatusReference = JsonConverters.fromJson(json['ProjectStatusReference'],'Reference',context!);
        StartDate = JsonConverters.fromJson(json['StartDate'],'DateTime',context!);
        EndDate = JsonConverters.fromJson(json['EndDate'],'DateTime',context!);
        CompletionDate = JsonConverters.fromJson(json['CompletionDate'],'DateTime',context!);
        Inactive = json['Inactive'];
        Website = json['Website'];
        IsTemplateProject = json['IsTemplateProject'];
        CustomFields = JsonConverters.fromJson(json['CustomFields'],'List<CustomField>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'GlobalID': GlobalID,
        'CreationDate': JsonConverters.toJson(CreationDate,'DateTime',context!),
        'CreatedBy': CreatedBy,
        'ModifiedDate': JsonConverters.toJson(ModifiedDate,'DateTime',context!),
        'ModifiedBy': ModifiedBy,
        'Code': Code,
        'Name': Name,
        'Description1': Description1,
        'Description2': Description2,
        'Address': JsonConverters.toJson(Address,'Address',context!),
        'MailingAddress': JsonConverters.toJson(MailingAddress,'MailingAddress',context!),
        'ProjectCategoryReference': JsonConverters.toJson(ProjectCategoryReference,'Reference',context!),
        'ProjectTypeReference': JsonConverters.toJson(ProjectTypeReference,'Reference',context!),
        'ProjectStatusReference': JsonConverters.toJson(ProjectStatusReference,'Reference',context!),
        'StartDate': JsonConverters.toJson(StartDate,'DateTime',context!),
        'EndDate': JsonConverters.toJson(EndDate,'DateTime',context!),
        'CompletionDate': JsonConverters.toJson(CompletionDate,'DateTime',context!),
        'Inactive': Inactive,
        'Website': Website,
        'IsTemplateProject': IsTemplateProject,
        'CustomFields': JsonConverters.toJson(CustomFields,'List<CustomField>',context!)
    };

    getTypeName() => "Project";
    TypeContext? context = _ctx;
}

class ProjectResponseMessage implements IConvertible
{
    Header? Header;
    Reference? ProjectReference;
    Project? Project;
    List<HousingType>? HousingTypes;
    List<ConstructionBlock>? ConstructionBlocks;
    List<ConstructionNumber>? ConstructionNumbers;
    List<Document>? Documents;
    List<PurchaseContract>? PurchaseContracts;

    ProjectResponseMessage({this.Header,this.ProjectReference,this.Project,this.HousingTypes,this.ConstructionBlocks,this.ConstructionNumbers,this.Documents,this.PurchaseContracts});
    ProjectResponseMessage.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Header = JsonConverters.fromJson(json['Header'],'Header',context!);
        ProjectReference = JsonConverters.fromJson(json['ProjectReference'],'Reference',context!);
        Project = JsonConverters.fromJson(json['Project'],'Project',context!);
        HousingTypes = JsonConverters.fromJson(json['HousingTypes'],'List<HousingType>',context!);
        ConstructionBlocks = JsonConverters.fromJson(json['ConstructionBlocks'],'List<ConstructionBlock>',context!);
        ConstructionNumbers = JsonConverters.fromJson(json['ConstructionNumbers'],'List<ConstructionNumber>',context!);
        Documents = JsonConverters.fromJson(json['Documents'],'List<Document>',context!);
        PurchaseContracts = JsonConverters.fromJson(json['PurchaseContracts'],'List<PurchaseContract>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Header': JsonConverters.toJson(Header,'Header',context!),
        'ProjectReference': JsonConverters.toJson(ProjectReference,'Reference',context!),
        'Project': JsonConverters.toJson(Project,'Project',context!),
        'HousingTypes': JsonConverters.toJson(HousingTypes,'List<HousingType>',context!),
        'ConstructionBlocks': JsonConverters.toJson(ConstructionBlocks,'List<ConstructionBlock>',context!),
        'ConstructionNumbers': JsonConverters.toJson(ConstructionNumbers,'List<ConstructionNumber>',context!),
        'Documents': JsonConverters.toJson(Documents,'List<Document>',context!),
        'PurchaseContracts': JsonConverters.toJson(PurchaseContracts,'List<PurchaseContract>',context!)
    };

    getTypeName() => "ProjectResponseMessage";
    TypeContext? context = _ctx;
}

class ProjectRequestMessage implements IConvertible
{
    Header? Header;
    Reference? ProjectReference;
    bool? IncludeHousingTypes;
    bool? IncludeConstructionBlocks;
    bool? IncludeConstructionNumbers;
    bool? IncludeDocuments;
    bool? IncludePurchaseContracts;

    ProjectRequestMessage({this.Header,this.ProjectReference,this.IncludeHousingTypes,this.IncludeConstructionBlocks,this.IncludeConstructionNumbers,this.IncludeDocuments,this.IncludePurchaseContracts});
    ProjectRequestMessage.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Header = JsonConverters.fromJson(json['Header'],'Header',context!);
        ProjectReference = JsonConverters.fromJson(json['ProjectReference'],'Reference',context!);
        IncludeHousingTypes = json['IncludeHousingTypes'];
        IncludeConstructionBlocks = json['IncludeConstructionBlocks'];
        IncludeConstructionNumbers = json['IncludeConstructionNumbers'];
        IncludeDocuments = json['IncludeDocuments'];
        IncludePurchaseContracts = json['IncludePurchaseContracts'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Header': JsonConverters.toJson(Header,'Header',context!),
        'ProjectReference': JsonConverters.toJson(ProjectReference,'Reference',context!),
        'IncludeHousingTypes': IncludeHousingTypes,
        'IncludeConstructionBlocks': IncludeConstructionBlocks,
        'IncludeConstructionNumbers': IncludeConstructionNumbers,
        'IncludeDocuments': IncludeDocuments,
        'IncludePurchaseContracts': IncludePurchaseContracts
    };

    getTypeName() => "ProjectRequestMessage";
    TypeContext? context = _ctx;
}

class ProcessProjectRequestMessage implements IConvertible
{
    String? InstanceId;
    ProjectRequestMessage? ProjectRequest;

    ProcessProjectRequestMessage({this.InstanceId,this.ProjectRequest});
    ProcessProjectRequestMessage.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        InstanceId = json['InstanceId'];
        ProjectRequest = JsonConverters.fromJson(json['ProjectRequest'],'ProjectRequestMessage',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'InstanceId': InstanceId,
        'ProjectRequest': JsonConverters.toJson(ProjectRequest,'ProjectRequestMessage',context!)
    };

    getTypeName() => "ProcessProjectRequestMessage";
    TypeContext? context = _ctx;
}

class CustomField implements IConvertible
{
    String? Name;
    String? Value;

    CustomField({this.Name,this.Value});
    CustomField.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Name = json['Name'];
        Value = json['Value'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Name': Name,
        'Value': Value
    };

    getTypeName() => "CustomField";
    TypeContext? context = _ctx;
}

class HousingType implements IConvertible
{
    String? GlobalID;
    Reference? ProjectReference;
    String? Code;
    String? Description;
    List<CustomField>? CustomFields;
    DateTime? CreationDate;
    String? CreatedBy;
    DateTime? ModifiedDate;
    String? ModifiedBy;

    HousingType({this.GlobalID,this.ProjectReference,this.Code,this.Description,this.CustomFields,this.CreationDate,this.CreatedBy,this.ModifiedDate,this.ModifiedBy});
    HousingType.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        GlobalID = json['GlobalID'];
        ProjectReference = JsonConverters.fromJson(json['ProjectReference'],'Reference',context!);
        Code = json['Code'];
        Description = json['Description'];
        CustomFields = JsonConverters.fromJson(json['CustomFields'],'List<CustomField>',context!);
        CreationDate = JsonConverters.fromJson(json['CreationDate'],'DateTime',context!);
        CreatedBy = json['CreatedBy'];
        ModifiedDate = JsonConverters.fromJson(json['ModifiedDate'],'DateTime',context!);
        ModifiedBy = json['ModifiedBy'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'GlobalID': GlobalID,
        'ProjectReference': JsonConverters.toJson(ProjectReference,'Reference',context!),
        'Code': Code,
        'Description': Description,
        'CustomFields': JsonConverters.toJson(CustomFields,'List<CustomField>',context!),
        'CreationDate': JsonConverters.toJson(CreationDate,'DateTime',context!),
        'CreatedBy': CreatedBy,
        'ModifiedDate': JsonConverters.toJson(ModifiedDate,'DateTime',context!),
        'ModifiedBy': ModifiedBy
    };

    getTypeName() => "HousingType";
    TypeContext? context = _ctx;
}

class ConstructionBlock implements IConvertible
{
    String? GlobalID;
    Reference? ProjectReference;
    String? Code;
    String? Description;
    List<CustomField>? CustomFields;
    DateTime? CreationDate;
    String? CreatedBy;
    DateTime? ModifiedDate;
    String? ModifiedBy;

    ConstructionBlock({this.GlobalID,this.ProjectReference,this.Code,this.Description,this.CustomFields,this.CreationDate,this.CreatedBy,this.ModifiedDate,this.ModifiedBy});
    ConstructionBlock.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        GlobalID = json['GlobalID'];
        ProjectReference = JsonConverters.fromJson(json['ProjectReference'],'Reference',context!);
        Code = json['Code'];
        Description = json['Description'];
        CustomFields = JsonConverters.fromJson(json['CustomFields'],'List<CustomField>',context!);
        CreationDate = JsonConverters.fromJson(json['CreationDate'],'DateTime',context!);
        CreatedBy = json['CreatedBy'];
        ModifiedDate = JsonConverters.fromJson(json['ModifiedDate'],'DateTime',context!);
        ModifiedBy = json['ModifiedBy'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'GlobalID': GlobalID,
        'ProjectReference': JsonConverters.toJson(ProjectReference,'Reference',context!),
        'Code': Code,
        'Description': Description,
        'CustomFields': JsonConverters.toJson(CustomFields,'List<CustomField>',context!),
        'CreationDate': JsonConverters.toJson(CreationDate,'DateTime',context!),
        'CreatedBy': CreatedBy,
        'ModifiedDate': JsonConverters.toJson(ModifiedDate,'DateTime',context!),
        'ModifiedBy': ModifiedBy
    };

    getTypeName() => "ConstructionBlock";
    TypeContext? context = _ctx;
}

class ConstructionNumber implements IConvertible
{
    String? GlobalID;
    Reference? ProjectReference;
    Reference? HousingTypeReference;
    Reference? ConstructionBlockReference;
    String? Code;
    String? Description;
    Address? Address;
    bool? RentalHouse;
    String? GuaranteeCertificateNumber;
    bool? Inactive;
    List<CustomField>? CustomFields;
    DateTime? CreationDate;
    String? CreatedBy;
    DateTime? ModifiedDate;
    String? ModifiedBy;
    DateTime? ViewingDate;
    bool? ViewingDateSpecified;
    DateTime? DeliveryDate;
    bool? DeliveryDateSpecified;

    ConstructionNumber({this.GlobalID,this.ProjectReference,this.HousingTypeReference,this.ConstructionBlockReference,this.Code,this.Description,this.Address,this.RentalHouse,this.GuaranteeCertificateNumber,this.Inactive,this.CustomFields,this.CreationDate,this.CreatedBy,this.ModifiedDate,this.ModifiedBy,this.ViewingDate,this.ViewingDateSpecified,this.DeliveryDate,this.DeliveryDateSpecified});
    ConstructionNumber.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        GlobalID = json['GlobalID'];
        ProjectReference = JsonConverters.fromJson(json['ProjectReference'],'Reference',context!);
        HousingTypeReference = JsonConverters.fromJson(json['HousingTypeReference'],'Reference',context!);
        ConstructionBlockReference = JsonConverters.fromJson(json['ConstructionBlockReference'],'Reference',context!);
        Code = json['Code'];
        Description = json['Description'];
        Address = JsonConverters.fromJson(json['Address'],'Address',context!);
        RentalHouse = json['RentalHouse'];
        GuaranteeCertificateNumber = json['GuaranteeCertificateNumber'];
        Inactive = json['Inactive'];
        CustomFields = JsonConverters.fromJson(json['CustomFields'],'List<CustomField>',context!);
        CreationDate = JsonConverters.fromJson(json['CreationDate'],'DateTime',context!);
        CreatedBy = json['CreatedBy'];
        ModifiedDate = JsonConverters.fromJson(json['ModifiedDate'],'DateTime',context!);
        ModifiedBy = json['ModifiedBy'];
        ViewingDate = JsonConverters.fromJson(json['ViewingDate'],'DateTime',context!);
        ViewingDateSpecified = json['ViewingDateSpecified'];
        DeliveryDate = JsonConverters.fromJson(json['DeliveryDate'],'DateTime',context!);
        DeliveryDateSpecified = json['DeliveryDateSpecified'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'GlobalID': GlobalID,
        'ProjectReference': JsonConverters.toJson(ProjectReference,'Reference',context!),
        'HousingTypeReference': JsonConverters.toJson(HousingTypeReference,'Reference',context!),
        'ConstructionBlockReference': JsonConverters.toJson(ConstructionBlockReference,'Reference',context!),
        'Code': Code,
        'Description': Description,
        'Address': JsonConverters.toJson(Address,'Address',context!),
        'RentalHouse': RentalHouse,
        'GuaranteeCertificateNumber': GuaranteeCertificateNumber,
        'Inactive': Inactive,
        'CustomFields': JsonConverters.toJson(CustomFields,'List<CustomField>',context!),
        'CreationDate': JsonConverters.toJson(CreationDate,'DateTime',context!),
        'CreatedBy': CreatedBy,
        'ModifiedDate': JsonConverters.toJson(ModifiedDate,'DateTime',context!),
        'ModifiedBy': ModifiedBy,
        'ViewingDate': JsonConverters.toJson(ViewingDate,'DateTime',context!),
        'ViewingDateSpecified': ViewingDateSpecified,
        'DeliveryDate': JsonConverters.toJson(DeliveryDate,'DateTime',context!),
        'DeliveryDateSpecified': DeliveryDateSpecified
    };

    getTypeName() => "ConstructionNumber";
    TypeContext? context = _ctx;
}

class Document implements ICustomProperties, IConvertible
{
    String? ID;
    String? RootDocumentID;
    String? RegistrationprofileID;
    String? Title;
    String? FullTitle;
    String? Number;
    String? Version;
    String? ExternalNumber;
    String? ExternalVersion;
    String? InternalNumber;
    String? InternalInvoiceNumber;
    int? PersonID;
    int? RelationID;
    String? RelationTitle;
    int? ProjectID;
    String? ProjectTitle;
    String? Extension;
    DateTime? Date;
    int? CommentsCount;
    bool? HasComments;
    bool? HasPreview;
    String? ExtraField;
    bool? IsFavorite;
    String? DocumentcategoryText;
    int? FileSize;
    DateTime? FileDate;
    String? Hash;
    String? HashType;
    String? FileUrl;
    String? StandardDocumentUrl;
    bool? IsCorporateIdentity;
    String? UserTitle;
    bool? IsFrozen;
    int? InternalCompanyID;
    String? DirectUrl;
    bool? AllowDigitalSigningOnlyOnPrimaryVersions;
    bool? IsPrimaryVersion;
    String? FileExtension;
    Map<String,dynamic?>? CustomProperties;

    Document({this.ID,this.RootDocumentID,this.RegistrationprofileID,this.Title,this.FullTitle,this.Number,this.Version,this.ExternalNumber,this.ExternalVersion,this.InternalNumber,this.InternalInvoiceNumber,this.PersonID,this.RelationID,this.RelationTitle,this.ProjectID,this.ProjectTitle,this.Extension,this.Date,this.CommentsCount,this.HasComments,this.HasPreview,this.ExtraField,this.IsFavorite,this.DocumentcategoryText,this.FileSize,this.FileDate,this.Hash,this.HashType,this.FileUrl,this.StandardDocumentUrl,this.IsCorporateIdentity,this.UserTitle,this.IsFrozen,this.InternalCompanyID,this.DirectUrl,this.AllowDigitalSigningOnlyOnPrimaryVersions,this.IsPrimaryVersion,this.FileExtension,this.CustomProperties});
    Document.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ID = json['ID'];
        RootDocumentID = json['RootDocumentID'];
        RegistrationprofileID = json['RegistrationprofileID'];
        Title = json['Title'];
        FullTitle = json['FullTitle'];
        Number = json['Number'];
        Version = json['Version'];
        ExternalNumber = json['ExternalNumber'];
        ExternalVersion = json['ExternalVersion'];
        InternalNumber = json['InternalNumber'];
        InternalInvoiceNumber = json['InternalInvoiceNumber'];
        PersonID = json['PersonID'];
        RelationID = json['RelationID'];
        RelationTitle = json['RelationTitle'];
        ProjectID = json['ProjectID'];
        ProjectTitle = json['ProjectTitle'];
        Extension = json['Extension'];
        Date = JsonConverters.fromJson(json['Date'],'DateTime',context!);
        CommentsCount = json['CommentsCount'];
        HasComments = json['HasComments'];
        HasPreview = json['HasPreview'];
        ExtraField = json['ExtraField'];
        IsFavorite = json['IsFavorite'];
        DocumentcategoryText = json['DocumentcategoryText'];
        FileSize = json['FileSize'];
        FileDate = JsonConverters.fromJson(json['FileDate'],'DateTime',context!);
        Hash = json['Hash'];
        HashType = json['HashType'];
        FileUrl = json['FileUrl'];
        StandardDocumentUrl = json['StandardDocumentUrl'];
        IsCorporateIdentity = json['IsCorporateIdentity'];
        UserTitle = json['UserTitle'];
        IsFrozen = json['IsFrozen'];
        InternalCompanyID = json['InternalCompanyID'];
        DirectUrl = json['DirectUrl'];
        AllowDigitalSigningOnlyOnPrimaryVersions = json['AllowDigitalSigningOnlyOnPrimaryVersions'];
        IsPrimaryVersion = json['IsPrimaryVersion'];
        FileExtension = json['FileExtension'];
        CustomProperties = JsonConverters.fromJson(json['CustomProperties'],'Map<String,dynamic?>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ID': ID,
        'RootDocumentID': RootDocumentID,
        'RegistrationprofileID': RegistrationprofileID,
        'Title': Title,
        'FullTitle': FullTitle,
        'Number': Number,
        'Version': Version,
        'ExternalNumber': ExternalNumber,
        'ExternalVersion': ExternalVersion,
        'InternalNumber': InternalNumber,
        'InternalInvoiceNumber': InternalInvoiceNumber,
        'PersonID': PersonID,
        'RelationID': RelationID,
        'RelationTitle': RelationTitle,
        'ProjectID': ProjectID,
        'ProjectTitle': ProjectTitle,
        'Extension': Extension,
        'Date': JsonConverters.toJson(Date,'DateTime',context!),
        'CommentsCount': CommentsCount,
        'HasComments': HasComments,
        'HasPreview': HasPreview,
        'ExtraField': ExtraField,
        'IsFavorite': IsFavorite,
        'DocumentcategoryText': DocumentcategoryText,
        'FileSize': FileSize,
        'FileDate': JsonConverters.toJson(FileDate,'DateTime',context!),
        'Hash': Hash,
        'HashType': HashType,
        'FileUrl': FileUrl,
        'StandardDocumentUrl': StandardDocumentUrl,
        'IsCorporateIdentity': IsCorporateIdentity,
        'UserTitle': UserTitle,
        'IsFrozen': IsFrozen,
        'InternalCompanyID': InternalCompanyID,
        'DirectUrl': DirectUrl,
        'AllowDigitalSigningOnlyOnPrimaryVersions': AllowDigitalSigningOnlyOnPrimaryVersions,
        'IsPrimaryVersion': IsPrimaryVersion,
        'FileExtension': FileExtension,
        'CustomProperties': JsonConverters.toJson(CustomProperties,'Map<String,dynamic?>',context!)
    };

    getTypeName() => "Document";
    TypeContext? context = _ctx;
}

class Relation implements IConvertible
{
    String? GlobalID;
    String? NameLine1;
    String? NameLine2;
    Address? Address;
    MailingAddress? MailingAddress;
    String? Telephone;
    String? Mobile;
    String? Email;
    String? IBAN;
    String? BankAccountNumber;
    String? Website;
    bool? Inactive;
    List<CustomField>? CustomFields;
    DateTime? CreationDate;
    String? CreatedBy;
    DateTime? ModifiedDate;
    String? ModifiedBy;

    Relation({this.GlobalID,this.NameLine1,this.NameLine2,this.Address,this.MailingAddress,this.Telephone,this.Mobile,this.Email,this.IBAN,this.BankAccountNumber,this.Website,this.Inactive,this.CustomFields,this.CreationDate,this.CreatedBy,this.ModifiedDate,this.ModifiedBy});
    Relation.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        GlobalID = json['GlobalID'];
        NameLine1 = json['NameLine1'];
        NameLine2 = json['NameLine2'];
        Address = JsonConverters.fromJson(json['Address'],'Address',context!);
        MailingAddress = JsonConverters.fromJson(json['MailingAddress'],'MailingAddress',context!);
        Telephone = json['Telephone'];
        Mobile = json['Mobile'];
        Email = json['Email'];
        IBAN = json['IBAN'];
        BankAccountNumber = json['BankAccountNumber'];
        Website = json['Website'];
        Inactive = json['Inactive'];
        CustomFields = JsonConverters.fromJson(json['CustomFields'],'List<CustomField>',context!);
        CreationDate = JsonConverters.fromJson(json['CreationDate'],'DateTime',context!);
        CreatedBy = json['CreatedBy'];
        ModifiedDate = JsonConverters.fromJson(json['ModifiedDate'],'DateTime',context!);
        ModifiedBy = json['ModifiedBy'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'GlobalID': GlobalID,
        'NameLine1': NameLine1,
        'NameLine2': NameLine2,
        'Address': JsonConverters.toJson(Address,'Address',context!),
        'MailingAddress': JsonConverters.toJson(MailingAddress,'MailingAddress',context!),
        'Telephone': Telephone,
        'Mobile': Mobile,
        'Email': Email,
        'IBAN': IBAN,
        'BankAccountNumber': BankAccountNumber,
        'Website': Website,
        'Inactive': Inactive,
        'CustomFields': JsonConverters.toJson(CustomFields,'List<CustomField>',context!),
        'CreationDate': JsonConverters.toJson(CreationDate,'DateTime',context!),
        'CreatedBy': CreatedBy,
        'ModifiedDate': JsonConverters.toJson(ModifiedDate,'DateTime',context!),
        'ModifiedBy': ModifiedBy
    };

    getTypeName() => "Relation";
    TypeContext? context = _ctx;
}

class PurchaseContract implements IConvertible
{
    String? GlobalID;
    String? Code;
    String? Description;
    Reference? ProjectReference;
    String? ProductCode;
    Relation? Relation;
    bool? Inactive;
    List<CustomField>? CustomFields;
    DateTime? CreationDate;
    String? CreatedBy;
    DateTime? ModifiedDate;
    String? ModifiedBy;

    PurchaseContract({this.GlobalID,this.Code,this.Description,this.ProjectReference,this.ProductCode,this.Relation,this.Inactive,this.CustomFields,this.CreationDate,this.CreatedBy,this.ModifiedDate,this.ModifiedBy});
    PurchaseContract.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        GlobalID = json['GlobalID'];
        Code = json['Code'];
        Description = json['Description'];
        ProjectReference = JsonConverters.fromJson(json['ProjectReference'],'Reference',context!);
        ProductCode = json['ProductCode'];
        Relation = JsonConverters.fromJson(json['Relation'],'Relation',context!);
        Inactive = json['Inactive'];
        CustomFields = JsonConverters.fromJson(json['CustomFields'],'List<CustomField>',context!);
        CreationDate = JsonConverters.fromJson(json['CreationDate'],'DateTime',context!);
        CreatedBy = json['CreatedBy'];
        ModifiedDate = JsonConverters.fromJson(json['ModifiedDate'],'DateTime',context!);
        ModifiedBy = json['ModifiedBy'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'GlobalID': GlobalID,
        'Code': Code,
        'Description': Description,
        'ProjectReference': JsonConverters.toJson(ProjectReference,'Reference',context!),
        'ProductCode': ProductCode,
        'Relation': JsonConverters.toJson(Relation,'Relation',context!),
        'Inactive': Inactive,
        'CustomFields': JsonConverters.toJson(CustomFields,'List<CustomField>',context!),
        'CreationDate': JsonConverters.toJson(CreationDate,'DateTime',context!),
        'CreatedBy': CreatedBy,
        'ModifiedDate': JsonConverters.toJson(ModifiedDate,'DateTime',context!),
        'ModifiedBy': ModifiedBy
    };

    getTypeName() => "PurchaseContract";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'kpm_digiofficeapigateway.tbi.nl', types: <String, TypeInfo> {
    'Environment': TypeInfo(TypeOf.Class, create:() => Environment()),
    'Party': TypeInfo(TypeOf.Class, create:() => Party()),
    'Header': TypeInfo(TypeOf.Class, create:() => Header()),
    'Reference': TypeInfo(TypeOf.Class, create:() => Reference()),
    'Address': TypeInfo(TypeOf.Class, create:() => Address()),
    'MailingAddress': TypeInfo(TypeOf.Class, create:() => MailingAddress()),
    'Project': TypeInfo(TypeOf.Class, create:() => Project()),
    'List<CustomField>': TypeInfo(TypeOf.Class, create:() => <CustomField>[]),
    'CustomField': TypeInfo(TypeOf.Class, create:() => CustomField()),
    'ProjectResponseMessage': TypeInfo(TypeOf.Class, create:() => ProjectResponseMessage()),
    'List<HousingType>': TypeInfo(TypeOf.Class, create:() => <HousingType>[]),
    'HousingType': TypeInfo(TypeOf.Class, create:() => HousingType()),
    'List<ConstructionBlock>': TypeInfo(TypeOf.Class, create:() => <ConstructionBlock>[]),
    'ConstructionBlock': TypeInfo(TypeOf.Class, create:() => ConstructionBlock()),
    'List<ConstructionNumber>': TypeInfo(TypeOf.Class, create:() => <ConstructionNumber>[]),
    'ConstructionNumber': TypeInfo(TypeOf.Class, create:() => ConstructionNumber()),
    'List<Document>': TypeInfo(TypeOf.Class, create:() => <Document>[]),
    'Document': TypeInfo(TypeOf.Class, create:() => Document()),
    'List<PurchaseContract>': TypeInfo(TypeOf.Class, create:() => <PurchaseContract>[]),
    'PurchaseContract': TypeInfo(TypeOf.Class, create:() => PurchaseContract()),
    'ProjectRequestMessage': TypeInfo(TypeOf.Class, create:() => ProjectRequestMessage()),
    'ProcessProjectRequestMessage': TypeInfo(TypeOf.Class, create:() => ProcessProjectRequestMessage()),
    'Map<String,dynamic?>': TypeInfo(TypeOf.Class, create:() => Map<String,dynamic?>()),
    'Relation': TypeInfo(TypeOf.Class, create:() => Relation()),
});

Dart ProcessProjectRequestMessage DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml

HTTP + XML

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /xml/reply/ProcessProjectRequestMessage HTTP/1.1 
Host: kpm_digiofficeapigateway.tbi.nl 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<ProcessProjectRequestMessage xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/DigiOffice.Integration.TBIXchangeAzure.Messages">
  <InstanceId>00000000-0000-0000-0000-000000000000</InstanceId>
  <ProjectRequest>
    <Header>
      <MessageID>String</MessageID>
      <Recipient>
        <Code>String</Code>
        <Environment>
          <Code>String</Code>
          <Title>String</Title>
        </Environment>
        <Title>String</Title>
        <Version>String</Version>
      </Recipient>
      <RequestMessageID />
      <Sender>
        <Code>String</Code>
        <Environment>
          <Code>String</Code>
          <Title>String</Title>
        </Environment>
        <Title>String</Title>
        <Version>String</Version>
      </Sender>
      <Timestamp>0001-01-01T00:00:00</Timestamp>
    </Header>
    <IncludeConstructionBlocks>false</IncludeConstructionBlocks>
    <IncludeConstructionNumbers>false</IncludeConstructionNumbers>
    <IncludeDocuments>false</IncludeDocuments>
    <IncludeHousingTypes>false</IncludeHousingTypes>
    <IncludePurchaseContracts>false</IncludePurchaseContracts>
    <ProjectReference>
      <GlobalID>String</GlobalID>
      <Title>String</Title>
    </ProjectReference>
  </ProjectRequest>
</ProcessProjectRequestMessage>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<ProjectResponseMessage xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/DigiOffice.Integration.TBIXchangeAzure.Messages">
  <ConstructionBlocks>
    <ConstructionBlock>
      <Code>String</Code>
      <CreatedBy>String</CreatedBy>
      <CreationDate>0001-01-01T00:00:00</CreationDate>
      <CustomFields>
        <CustomField>
          <Name>String</Name>
          <Value>String</Value>
        </CustomField>
      </CustomFields>
      <Description>String</Description>
      <GlobalID>String</GlobalID>
      <ModifiedBy>String</ModifiedBy>
      <ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
      <ProjectReference>
        <GlobalID>String</GlobalID>
        <Title>String</Title>
      </ProjectReference>
    </ConstructionBlock>
  </ConstructionBlocks>
  <ConstructionNumbers>
    <ConstructionNumber>
      <Address>
        <AddressLine1>String</AddressLine1>
        <AddressLine2>String</AddressLine2>
        <City>String</City>
        <Country>
          <GlobalID>String</GlobalID>
          <Title>String</Title>
        </Country>
        <HouseNumber>String</HouseNumber>
        <HouseNumberSuffix>String</HouseNumberSuffix>
        <PostalCode>String</PostalCode>
      </Address>
      <Code>String</Code>
      <ConstructionBlockReference>
        <GlobalID>String</GlobalID>
        <Title>String</Title>
      </ConstructionBlockReference>
      <CreatedBy>String</CreatedBy>
      <CreationDate>0001-01-01T00:00:00</CreationDate>
      <CustomFields>
        <CustomField>
          <Name>String</Name>
          <Value>String</Value>
        </CustomField>
      </CustomFields>
      <DeliveryDate>0001-01-01T00:00:00</DeliveryDate>
      <DeliveryDateSpecified>false</DeliveryDateSpecified>
      <Description>String</Description>
      <GlobalID>String</GlobalID>
      <GuaranteeCertificateNumber>String</GuaranteeCertificateNumber>
      <HousingTypeReference>
        <GlobalID>String</GlobalID>
        <Title>String</Title>
      </HousingTypeReference>
      <Inactive>false</Inactive>
      <ModifiedBy>String</ModifiedBy>
      <ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
      <ProjectReference>
        <GlobalID>String</GlobalID>
        <Title>String</Title>
      </ProjectReference>
      <RentalHouse>false</RentalHouse>
      <ViewingDate>0001-01-01T00:00:00</ViewingDate>
      <ViewingDateSpecified>false</ViewingDateSpecified>
    </ConstructionNumber>
  </ConstructionNumbers>
  <Documents>
    <Document>
      <Code>String</Code>
      <ConstructionBlockReference>
        <GlobalID>String</GlobalID>
        <Title>String</Title>
      </ConstructionBlockReference>
      <ConstructionNumberReference>
        <GlobalID>String</GlobalID>
        <Title>String</Title>
      </ConstructionNumberReference>
      <CreatedBy>String</CreatedBy>
      <CreationDate>0001-01-01T00:00:00</CreationDate>
      <CustomFields>
        <CustomField>
          <Name>String</Name>
          <Value>String</Value>
        </CustomField>
      </CustomFields>
      <DeletedDate>0001-01-01T00:00:00</DeletedDate>
      <DeletedDateSpecified>false</DeletedDateSpecified>
      <DocumentTypeReference>
        <GlobalID>String</GlobalID>
        <Title>String</Title>
      </DocumentTypeReference>
      <File>
        <Content>String</Content>
        <ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
        <Name>String</Name>
        <Size>0</Size>
        <Type>String</Type>
      </File>
      <Floor>0</Floor>
      <FloorSpecified>false</FloorSpecified>
      <GlobalID>String</GlobalID>
      <HousingTypeReference>
        <GlobalID>String</GlobalID>
        <Title>String</Title>
      </HousingTypeReference>
      <ModifiedBy>String</ModifiedBy>
      <ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
      <NewestVersion>false</NewestVersion>
      <ProjectReference>
        <GlobalID>String</GlobalID>
        <Title>String</Title>
      </ProjectReference>
      <RelationReference>
        <GlobalID>String</GlobalID>
        <Title>String</Title>
      </RelationReference>
      <RootDocumentID>String</RootDocumentID>
      <Subject>String</Subject>
      <VersionNumber>String</VersionNumber>
    </Document>
  </Documents>
  <Header>
    <MessageID>String</MessageID>
    <Recipient>
      <Code>String</Code>
      <Environment>
        <Code>String</Code>
        <Title>String</Title>
      </Environment>
      <Title>String</Title>
      <Version>String</Version>
    </Recipient>
    <RequestMessageID />
    <Sender>
      <Code>String</Code>
      <Environment>
        <Code>String</Code>
        <Title>String</Title>
      </Environment>
      <Title>String</Title>
      <Version>String</Version>
    </Sender>
    <Timestamp>0001-01-01T00:00:00</Timestamp>
  </Header>
  <HousingTypes>
    <HousingType>
      <Code>String</Code>
      <CreatedBy>String</CreatedBy>
      <CreationDate>0001-01-01T00:00:00</CreationDate>
      <CustomFields>
        <CustomField>
          <Name>String</Name>
          <Value>String</Value>
        </CustomField>
      </CustomFields>
      <Description>String</Description>
      <GlobalID>String</GlobalID>
      <ModifiedBy>String</ModifiedBy>
      <ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
      <ProjectReference>
        <GlobalID>String</GlobalID>
        <Title>String</Title>
      </ProjectReference>
    </HousingType>
  </HousingTypes>
  <Project>
    <Address>
      <AddressLine1>String</AddressLine1>
      <AddressLine2>String</AddressLine2>
      <City>String</City>
      <Country>
        <GlobalID>String</GlobalID>
        <Title>String</Title>
      </Country>
      <HouseNumber>String</HouseNumber>
      <HouseNumberSuffix>String</HouseNumberSuffix>
      <PostalCode>String</PostalCode>
    </Address>
    <Code>String</Code>
    <CompletionDate>0001-01-01T00:00:00</CompletionDate>
    <CreatedBy>String</CreatedBy>
    <CreationDate>0001-01-01T00:00:00</CreationDate>
    <CustomFields>
      <CustomField>
        <Name>String</Name>
        <Value>String</Value>
      </CustomField>
    </CustomFields>
    <Description1>String</Description1>
    <Description2>String</Description2>
    <EndDate>0001-01-01T00:00:00</EndDate>
    <GlobalID>String</GlobalID>
    <Inactive>false</Inactive>
    <IsTemplateProject>false</IsTemplateProject>
    <MailingAddress>
      <City>String</City>
      <Country>
        <GlobalID>String</GlobalID>
        <Title>String</Title>
      </Country>
      <POBox>String</POBox>
      <PostalCode>String</PostalCode>
    </MailingAddress>
    <ModifiedBy>String</ModifiedBy>
    <ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
    <Name>String</Name>
    <ProjectCategoryReference>
      <GlobalID>String</GlobalID>
      <Title>String</Title>
    </ProjectCategoryReference>
    <ProjectStatusReference>
      <GlobalID>String</GlobalID>
      <Title>String</Title>
    </ProjectStatusReference>
    <ProjectTypeReference>
      <GlobalID>String</GlobalID>
      <Title>String</Title>
    </ProjectTypeReference>
    <StartDate>0001-01-01T00:00:00</StartDate>
    <Website>String</Website>
  </Project>
  <ProjectReference>
    <GlobalID>String</GlobalID>
    <Title>String</Title>
  </ProjectReference>
  <PurchaseContracts>
    <PurchaseContract>
      <Code>String</Code>
      <CreatedBy>String</CreatedBy>
      <CreationDate>0001-01-01T00:00:00</CreationDate>
      <CustomFields>
        <CustomField>
          <Name>String</Name>
          <Value>String</Value>
        </CustomField>
      </CustomFields>
      <Description>String</Description>
      <GlobalID>String</GlobalID>
      <Inactive>false</Inactive>
      <ModifiedBy>String</ModifiedBy>
      <ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
      <ProductCode>String</ProductCode>
      <ProjectReference>
        <GlobalID>String</GlobalID>
        <Title>String</Title>
      </ProjectReference>
      <Relation>
        <Address>
          <AddressLine1>String</AddressLine1>
          <AddressLine2>String</AddressLine2>
          <City>String</City>
          <Country>
            <GlobalID>String</GlobalID>
            <Title>String</Title>
          </Country>
          <HouseNumber>String</HouseNumber>
          <HouseNumberSuffix>String</HouseNumberSuffix>
          <PostalCode>String</PostalCode>
        </Address>
        <BankAccountNumber>String</BankAccountNumber>
        <CreatedBy>String</CreatedBy>
        <CreationDate>0001-01-01T00:00:00</CreationDate>
        <CustomFields>
          <CustomField>
            <Name>String</Name>
            <Value>String</Value>
          </CustomField>
        </CustomFields>
        <Email>String</Email>
        <GlobalID>String</GlobalID>
        <IBAN>String</IBAN>
        <Inactive>false</Inactive>
        <MailingAddress>
          <City>String</City>
          <Country>
            <GlobalID>String</GlobalID>
            <Title>String</Title>
          </Country>
          <POBox>String</POBox>
          <PostalCode>String</PostalCode>
        </MailingAddress>
        <Mobile>String</Mobile>
        <ModifiedBy>String</ModifiedBy>
        <ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
        <NameLine1>String</NameLine1>
        <NameLine2>String</NameLine2>
        <Telephone>String</Telephone>
        <Website>String</Website>
      </Relation>
    </PurchaseContract>
  </PurchaseContracts>
</ProjectResponseMessage>